#ifndef _EB0_PERSONALITY_H_
#define _EB0_PERSONALITY_H_

namespace EB0
{
	class Personality
	{
	public:
		virtual void runGame();

		static Personality& getSingleton();
		static Personality* getSingletonPtr();

	protected:
		virtual void initialize();
		virtual void mainLoop();
		virtual void handleWindowEvents();
		virtual void runTick();
		virtual void renderWindow(float dt = 0.0f);
		virtual void shutdown();

	private:
		static Personality* mSingleton;
	};
}

#endif // _EB0_PERSONALITY_H_